407 research outputs found

    Ingeniería de software: Reflexiones sobre una disciplina en evolución

    Get PDF
    This paper analyzes Software Architecture, defining it and describing the evolution of this field and its role in software engineering. In addition, it covers key concepts of a software archi- tecture course, steps to pursue an architectural thinking, the elements of organizational architecture maturity and emerging trends and issues such as: Architecture evolution, Architecture conformance, Frameworks, platforms, and ecologies, and Self-Adaptive Systems. Further we examine how software engineering has matured over the past two decades (and the role that software architecture has played in this process), the requirements of architectural thinking (at both technical and organizational levels), the importance for an organization to have mature archi- tectural practices and the existence of important new trends that are reshaping the way software architecture is practicedEste artículo analiza la arquitectura del software, definiéndolo y describiendo la evolución de este campo, y su rol en la ingeniería del software. Además, este cubre los conceptos claves de un curso sobre la arquitectura del software, los pasos para conseguir un pensamiento arquitectónico, los elementos de la madurez de la arquitectura estructural, y las tendencias y problemas emergentes como: la evolución de la arquitectura, la conformidad de la misma, los marcos de trabajo, las plataformas, y las ecologías, y los sistemas automáticos. Más allá, examinamos cómo la ingeniería del software ha madurado durante estas últimas dos décadas (y el papel que la arquitectura del software interpretó en este proceso); los requerimientos del pensamiento arquitectónico (a niveles tanto técnicos como organizativos); la importancia que tiene para una organización el hecho de que, las prácticas arquitecturales haya madurado; y la existencia de nuevas tendencias importantes que están modulando la manera en la que se practica la arquitectura del software

    Hyper-parameter Tuning for Adversarially Robust Models

    Full text link
    This work focuses on the problem of hyper-parameter tuning (HPT) for robust (i.e., adversarially trained) models, with the twofold goal of i) establishing which additional HPs are relevant to tune in adversarial settings, and ii) reducing the cost of HPT for robust models. We pursue the first goal via an extensive experimental study based on 3 recent models widely adopted in the prior literature on adversarial robustness. Our findings show that the complexity of the HPT problem, already notoriously expensive, is exacerbated in adversarial settings due to two main reasons: i) the need of tuning additional HPs which balance standard and adversarial training; ii) the need of tuning the HPs of the standard and adversarial training phases independently. Fortunately, we also identify new opportunities to reduce the cost of HPT for robust models. Specifically, we propose to leverage cheap adversarial training methods to obtain inexpensive, yet highly correlated, estimations of the quality achievable using state-of-the-art methods (PGD). We show that, by exploiting this novel idea in conjunction with a recent multi-fidelity optimizer (taKG), the efficiency of the HPT process can be significantly enhanced

    Architectural Mismatch: Why Reuse is Still So Hard

    Get PDF
    In this article, David Garlan, Robert Allen, and John Ockerbloom reflect on the state of architectural mismatch, a term they coined in their 1995 IEEE Software article, Architectural Mismatch: Why Reuse Is So Hard. Although the nature of software systems has changed dramatically since the earlier article was published, the challenge of architectural mismatch remains an important concern for the software engineering field

    ExTrA: Explaining architectural design tradeoff spaces via dimensionality reduction

    Get PDF
    In software design, guaranteeing the correctness of run-time system behavior while achieving an acceptable balance among multiple quality attributes remains a challenging problem. Moreover, providing guarantees about the satisfaction of those requirements when systems are subject to uncertain environments is even more challenging. While recent developments in architectural analysis techniques can assist architects in exploring the satisfaction of quantitative guarantees across the design space, existing approaches are still limited because they do not explicitly link design decisions to satisfaction of quality requirements. Furthermore, the amount of information they yield can be overwhelming to a human designer, making it difficult to see the forest for the trees. In this paper we present ExTrA (Explaining Tradeoffs of software Architecture design spaces), an approach to analyzing architectural design spaces that addresses these limitations and provides a basis for explaining design tradeoffs. Our approach employs dimensionality reduction techniques employed in machine learning pipelines like Principal Component Analysis (PCA) and Decision Tree Learning (DTL) to enable architects to understand how design decisions contribute to the satisfaction of extra-functional properties across the design space. Our results show feasibility of the approach in two case studies and evidence that combining complementary techniques like PCA and DTL is a viable approach to facilitate comprehension of tradeoffs in poorly-understood design spaces

    Exploiting architectural design knowledge to support self-repairing systems

    Get PDF

    Developing Self-Adaptive Microservice Systems: Challenges and Directions

    Full text link
    A self-adaptive system can dynamically monitor and adapt its behavior to preserve or enhance its quality attributes under uncertain operating conditions. This article identifies key challenges for the development of microservice applications as self-adaptive systems, using a cloud-based intelligent video surveillance application as a motivating example. It also suggests potential new directions for addressing most of the identified challenges by leveraging existing microservice practices and technologies.Comment: 8 pages, 1 figur

    Explaining quality attribute tradeoffs in automated planning for self-adaptive systems

    Get PDF
    Self-adaptive systems commonly operate in heterogeneous contexts and need to consider multiple quality attributes. Human stakeholders often express their quality preferences by defining utility functions, which are used by self-adaptive systems to automatically generate adaptation plans. However, the adaptation space of realistic systems is large and it is obscure how utility functions impact the generated adaptation behavior, as well as structural, behavioral, and quality constraints. Moreover, human stakeholders are often not aware of the underlying tradeoffs between quality attributes. To address this issue, we present an approach that uses machine learning techniques (dimensionality reduction, clustering, and decision tree learning) to explain the reasoning behind automated planning. Our approach focuses on the tradeoffs between quality attributes and how the choice of weights in utility functions results in different plans being generated. We help humans understand quality attribute tradeoffs, identify key decisions in adaptation behavior, and explore how differences in utility functions result in different adaptation alternatives. We present two systems to demonstrate the approach\u27s applicability and consider its potential application to 24 exemplar self-adaptive systems. Moreover, we describe our assessment of the tradeoff between the information reduction and the amount of explained variance retained by the results obtained with our approach
    • …
    corecore